The present invention pertains to the relationship between virtual capacity in a data container holding data objects stored by a storage application, and real capacity of a storage container supporting the capacity of the virtual data container. More specifically, the invention relates to providing a view of usage of real space in the storage container as reflected in usage of virtual space in a corresponding data container, and avoiding the consequences of running out of real space caused by an incorrectly perceived availability of virtual space.
Storage controllers that support thin-provisioning and compression offer storage efficiency capabilities. In one embodiment, the data container is a file system instance, and a data object is a file in the file system instance. Similarly, in one embodiment, the storage application is file system software. A common aspect of the storage efficiency capabilities is that a storage application that stores data in a data container is offered a limited amount of virtual capacity, and the real capacity backing the virtual capacity is smaller. For example, a one terabyte data container might be limited to 500 gigabytes of real capacity. In one embodiment, real capacity is a set of hard disks. To support the relationship between the virtual capacity and the real capacity, the storage controller may in one embodiment employ compression for stored data, or in another embodiment, the storage controller may limit allocation of storage blocks for data that is actually written by the storage application.
Thin-provisioning storage controllers are known for presenting a larger virtual capacity than that which is supported by real capacity. The storage application may operate as if the large virtual capacity exists, but when the real space in the storage container nears capacity, data access may be interrupted if the storage application continues to write data to the data container. At the same time, storage efficiencies, such as thin provisioning, enable the storage controller to provide capacity at lower cost. However, an entity such as a storage administrator must predict how much real space will be used, and use the prediction to establish a ratio of virtual space in the data container to real space in the storage container in configuring the real space. An inaccurate prediction may result in running out of real space while the storage application is unaware that insufficient real space exists.